package com.yxx.business.service;

import java.util.List;

import com.yxx.common.core.domain.PageResult;
import com.yxx.business.entity.TbSurveyDesignPhaseDo;
import com.yxx.business.entity.TbSurveyDesignPhaseVo;
import com.yxx.business.entity.TbSurveyDesignPhaseQueryDto;
import com.yxx.business.entity.TbSurveyDesignPhaseEditDto;
import com.yxx.common.core.service.IServicePlus;

/**
 * 勘察设计阶段Service接口
 *
 * @author yxx
 * @date 2025-08-16
 */
public interface ITbSurveyDesignPhaseService extends IServicePlus<TbSurveyDesignPhaseDo>, PhaseService {

    /**
     * 查询勘察设计阶段分页结果
     *
     * @param tbSurveyDesignPhaseQueryDto 勘察设计阶段查询实体
     * @return 勘察设计阶段分页
     */
    public PageResult<TbSurveyDesignPhaseVo> selectTbSurveyDesignPhaseVoPage(TbSurveyDesignPhaseQueryDto tbSurveyDesignPhaseQueryDto);

    /**
     * 查询勘察设计阶段Vo列表
     *
     * @param tbSurveyDesignPhaseQueryDto 勘察设计阶段查询实体
     * @return 勘察设计阶段集合
     */
    public List<TbSurveyDesignPhaseVo> selectTbSurveyDesignPhaseVoList(TbSurveyDesignPhaseQueryDto tbSurveyDesignPhaseQueryDto);

    /**
     * 查询勘察设计阶段Do列表
     *
     * @param tbSurveyDesignPhaseQueryDto 勘察设计阶段查询实体
     * @return 勘察设计阶段集合
     */
    public List<TbSurveyDesignPhaseDo> selectTbSurveyDesignPhaseDoList(TbSurveyDesignPhaseQueryDto tbSurveyDesignPhaseQueryDto);

    /**
     * 查询单个勘察设计阶段
     *
     * @param designId 勘察设计阶段主键
     * @return 勘察设计阶段单个
     */
    public TbSurveyDesignPhaseVo selectTbSurveyDesignPhaseVoByDesignId(Long designId);

    /**
     * 新增勘察设计阶段
     *
     * @param tbSurveyDesignPhaseQueryDto 勘察设计阶段编辑实体
     * @return 结果
     */
    public int insertTbSurveyDesignPhase(TbSurveyDesignPhaseEditDto tbSurveyDesignPhaseQueryDto);

    /**
     * 修改勘察设计阶段
     *
     * @param designId 主键
     * @param tbSurveyDesignPhaseQueryDto 勘察设计阶段编辑实体
     * @return 结果
     */
    public int updateTbSurveyDesignPhase(Long designId, TbSurveyDesignPhaseEditDto tbSurveyDesignPhaseQueryDto);

    /**
     * 批量删除勘察设计阶段
     *
     * @param designIds 勘察设计阶段主键集合
     * @return 结果
     */
    public int deleteTbSurveyDesignPhaseByDesignIds(List<Long> designIds);

    /**
     * 删除单个勘察设计阶段信息
     *
     * @param designId 勘察设计阶段主键
     * @return 结果
     */
    public int deleteTbSurveyDesignPhaseByDesignId(Long designId);
}
